package com.sodimac.v2s.business
{
 	import com.adobe.cairngorm.business.ServiceLocator;
 	
 	import mx.collections.ArrayCollection;
 	import mx.formatters.DateFormatter;
 	import mx.rpc.AsyncToken;
 	import mx.rpc.IResponder;
 	import mx.rpc.soap.WebService;	
	
	public class OCDelegate
	{
		
		private var service:WebService;
		private var responder:IResponder;		
		
		public function OCDelegate(responder:IResponder)
		{
			this.service = ServiceLocator.getInstance().getWebService("wsEmitirOrdenDeCompra");
			this.responder = responder;
		}

		
		public function EmitirOrdenCompra(cabecera: Object, 
										   idPedidoCorp: Number,
										   idProveedor: String,
										   fechaEnvio:Date,
										   fechaEmision:Date,
										   fechaRecepcion:Date,
										   idSucursal:Number,
										   sumaCantidades: Number,
										   arrProductos: ArrayCollection):void
		{
			trace("OCDelegate.EmitirOrdenCompra (PedidoCorp="+ idPedidoCorp +")");
			var solicitarOrdenesDeCompraRequest:Object = new Object();
			var prodCorp:Array = new Array();
			var payload:Object = new Object();
			var OCDoc:Object = new Object();
			var j:int = 0;
			
			var df:DateFormatter = new DateFormatter;
			df.formatString="YYYY-MM-DD";
						
 			if ( (arrProductos) && (arrProductos.length>0))
			{
			
				for (j=0; j<arrProductos.length;j++)
				{				
					var objProducto:Object = new Object();
					objProducto.numero = j+1;
					objProducto.prd_lvl_number = arrProductos[j]["sku"];
					objProducto.pmg_sell_qty = arrProductos[j]["cantidad"];
					
					prodCorp.push(objProducto);
				} 				
				
				//doc
				var cuadrat:Object = new Object();
				cuadrat.cuadrat_numlin_detalle = arrProductos.length;
				cuadrat.cuadrat_campo_detalle = "pmg_sell_qty";
				cuadrat.cuadrat_suma_detalle = sumaCantidades;
				OCDoc.odSolicOCDocChk = cuadrat;
				 
				//OC
				var solicObj:Object = new Object();
				var obj:Object = new Object();
				obj.vendor_number = idProveedor;
				obj.org_lvl_number = idSucursal;
				
 				obj.pmg_entry_date  = df.format(fechaEnvio);   // Fecha Envío 
				obj.pmg_release_date = df.format(fechaEmision);  // Fecha Emisión 
				obj.pmg_exp_rct_date = df.format(fechaRecepcion); // Fecha Recepción  

				obj.detalle = prodCorp;
				
				solicObj.odSolicOC = obj;
				
				OCDoc.odGrSolicOC = solicObj;
				
				payload.odSolicOCDoc  = OCDoc; 
			} 
			
			//unificar parametros
			solicitarOrdenesDeCompraRequest.cabecera = cabecera;
			solicitarOrdenesDeCompraRequest.payload = payload;
			
/*
            var qName:QName = new QName("form");
            var xmlDocument:XMLDocument = new XMLDocument();
            var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
            var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(payload, qName, xmlDocument);
            var xml:XML = new XML(xmlDocument.toString());
			trace("---------------------------");
			trace(xml.toString());	
			trace("---------------------------");			
		*/
			
			var call:AsyncToken  = service.wmSolicitarOrdenesDeCompra(solicitarOrdenesDeCompraRequest);
			call.addResponder( responder );
		}


	
	}
}

